/**
 * 
 */
package at.fhj.ase.client;

import java.io.*;
import java.sql.SQLException;

import at.fhj.ase.util.Login;
import at.fhj.ase.util.LoginManager;
import at.fhj.ase.util.ValidationProxy;

/**
 * ASE10 - SS2011 
 * Project work Client Architecture and Design
 *  
 * @author Henning Diepold
 * @author Dieter Steiner
 */

public class ClientMain {

	/**
	 * 
	 */
	public ClientMain() {

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Login myLogin = new ValidationProxy(new LoginManager());
		
		String username = "";
		String password = "";
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Bitte geben Sie Username und password ein.");
		System.out.println("Beenden mit 'exit'.");
		System.out.println("Username: " );
		
		while(true) {
			try{
				if(in.readLine().trim().equalsIgnoreCase("exit")){
					return;
				}
				if(((ValidationProxy)myLogin).checkUsername(in.readLine().trim())) {
					username = in.readLine().trim();
				}
				else{
					System.err.println("Username entspricht nicht den Vorgaben.");
				}
				System.out.println("Password: ");
				if(((ValidationProxy)myLogin).checkPassword(in.readLine().trim())){
					password = in.readLine().trim();			
				}
				else {
					System.err.printf("Password entspricht nicht den Vorgaben.");
					return;
				}
				myLogin.login(username, password);
			}catch(IOException e) {
				System.err.println(e.getMessage());
			} catch (ClassNotFoundException e) {
				System.err.println(e.getMessage());
			} catch (SQLException e) {
				System.err.println(e.getMessage());
			} catch (IllegalArgumentException e) {
				System.err.println(e.getMessage());
			}
		}
	}
}
